home *** CD-ROM | disk | FTP | other *** search
/ Mac Cubed 3 / Mac Cubed 3 - Disc 2.iso / Games / Sokoban 3D 1.0.1 ƒ / Docs / Write your own levels < prev   
Text File  |  1997-01-12  |  5KB  |  60 lines

  1. Writing Your Own Levels For Sokoban 3D
  2.  
  3. Making Set Files
  4.      The levels in Sokoban 3D are organized into sets. Each set that isn't built in to the game has its own set file.
  5.      The easiest way to make a new set file (and levels) is to use a Sokoban 3D-compatible level editor such as Franz Stadler's "Sokoban Level Editor." Franz Stadler can be reached at <fstadler@access.ch>. In addition, his Sokoban 3D-compatible Level Editor will soon be available on the Sokoban 3D home page (see the Sokoban 3D ReadMe file for the URL).
  6.      However, if you want to edit them yourself, and are handy with ResEdit, here's the information you'll need:
  7.      The set files consist of two resource types:
  8.      •The first is a standard 'TEXT' resource type which contains a bunch of text resources -- one for each level. You can (optionally) give each 'TEXT' resource a name which will be used as the name of the level by Sokoban 3D. The 'TEXT' resources are layed out according to the standard Sokoban level file format which uses ASCII characters to represent floors, walls, boxes, etc. See below for a description of this layout.
  9.      •You may use one of two other resources to specify the name of the set and the resource ID's of the first and last 'TEXT' levels. You should include either one or the other of these two resources. Sokoban 3D 1.0 only understands the 'SETs' resource. Sokoban 3D 1.0.1 will understand either the 'SETs' resource or the 'Setx' resource.
  10.      To use the 'SETs' resource, open the Sokoban 3D program with ResEdit. In there you will find the correct ResEdit 'SETs' template. Copy this template into the ResEdit preferences file. Create a 'SETs' resource with an ID of 128 in your new set file. Enter the name of the set and the resource IDs of the 'TEXT' resource of the first level and the last level in the set. That's it.
  11.      The 'Setx' resource is text-based. To use the 'Setx' resource, you can either type directly into the hex editor or create an 'RMAP' resource in ResEdit preferences remapping the 'Setx' resource to the 'TEXT' editor. The layout of the 'Setx' resource is similar to the 'SETs' resource. On the first line, type 1. Then go to a new line by pressing return (or adding the byte '0D' in the hex editor). Type the name of the set. Press return. Type the number of the resource ID of the first level's 'TEXT' resource. Press return. Type in the number of the resource ID of the last level's 'TEXT' resource. Finally, add a trailing return. (As opposed to the 'SETs' resource, the numbers here are stored as ASCII numbers, not as byte code.)
  12.      The set file itself should have a creator of 'Sk3d' and a type of 'Sets'.
  13.      Once you've succesfully made a set file and double-checked it against the information given here, drag it into the "Sets ƒ" folder in Sokoban 3D. The next time you start Sokoban, it should appear in the "Sets" menu.
  14.  
  15. Making Levels
  16.      Here's the layout of the TEXT resources that specify each level. This is a standard layout used by most implementations of Sokoban.
  17.      Each "cell" in the level (each square in the grid when viewed from the top-down as, e.g. in the "Map Mode" in Sokoban 3D), is represented by a single ASCII character. These characters are organized into lines separated by return characters. The top-most line refers to the top-most row of squares in the grid and so on.
  18.     The ASCII character codes are as follows:
  19.  
  20.      ' ' (space):                Floor
  21.      '#' (pound):              Wall
  22.      '$' (dollar sign):       Box
  23.      '.' (period):               Pallette
  24.      '@' ("at" symbol):     Player
  25.      '*' (asterisk):          Box on a pallette
  26.      '+': (plus):                Player on a pallette
  27.  
  28.      There must only be one player per level (either '@' or '+'). The level playing area should be completely surrounded by walls. The number of rows should not exceed 32 and neither should the number of columns.
  29.      Here's an example (this is the first level from the original set of 50 levels):
  30.  
  31.     #####
  32.     #   #
  33.     #$  #
  34.   ###  $##
  35.   #  $ $ #
  36. ### # ## #   ######
  37. #   # ## #####  ..#
  38. # $  $          ..#
  39. ##### ### #@##  ..#
  40.     #     #########
  41.     #######
  42.  
  43. Notice that you don't need to add spaces to the end of a row if you've reached the end of the board but you must add spaces to the beginning to make sure everything lines up correctly.
  44.      When you add the 'TEXT' resource to ResEdit, it might be confusing since it may use a variable-width font. For instance, the above example could look like:
  45.  
  46.     #####
  47.     #   #
  48.     #$  #
  49.   ###  $##
  50.   #  $ $ #
  51. ### # ## #   ######
  52. #   # ## #####  ..#
  53. # $  $          ..#
  54. ##### ### #@##  ..#
  55.     #     #########
  56.     #######
  57.  
  58. So it's probably best to design your levels in a fixed-width font like Monaco or Courier and then import them to ResEdit by copying and pasting.
  59.  
  60. ResEdit is a trademark of Apple Computer, Inc.